package cn.xxm.strategy.pay.i18n.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;

import java.util.Locale;

/**
 * @author XIEBO990
 * 国际化信息处理工具类
 */
@Slf4j
public class FI18nUtil {

    private static MessageSource messageSource;
    
    static {
    	try {
    		messageSource = (MessageSource) ContextUtil.getBean("fMessageSource");
    	}catch (Exception e) {
    		log.info("初始化messageSource异常：{}",e);
    	}
    }

    /**
     * 通过国际化配置文件的key值获取value
     * @param i18key
     * @return
     */
    public static String getI18nValue(String i18nKey){
		try {
			Locale locale = LocaleContextHolder.getLocale();
			return messageSource == null ? null: messageSource.getMessage(i18nKey, null, locale);
		} catch (Exception e) {
			log.info("获取国际化消息异常", e);
			return null;
		}
        		
    }

    /**
     * 根据key值获取value值，并对value进行占位符参数处理
     * @param i18key
     * @param param
     * @return
     */
    public static String paramGetI18nValue(String i18nKey,String ... param){
        return messageSource==null?null:messageSource.getMessage(i18nKey,param, LocaleContextHolder.getLocale());
    }

}
